home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / fb386 / pickup / lsoldier.bas < prev    next >
BASIC Source File  |  1991-10-18  |  8KB  |  219 lines

  1. 0 KEY (1) ON :ON KEY (1) GOSUB 65010:PLAY OFF
  2. 10 '
  3. 20 ' THE LIGHT SOLDIER / by Kazuya Shimada
  4. 30 '
  5. 40 DEFINT A-Z
  6. 50 DIM T(4,9),D(47),V(23)
  7. 60 PLAY OFF:BGM 1:LOAD@ "Q:\FJ\PCM\RYM_ALL1.PMB":LOAD@ "Q:\FJ\FM\FM_1.FMB"
  8. 70 FOR I=0 TO 13:PART I,I:NEXT I
  9. 80 '----
  10. 90 GOSUB *READ_DATA
  11. 100 '    AF                     PAN PMS AMS
  12. 110 DATA 56,  0,  0,  0,  0,  0,  3,  0,  0,  0
  13. 120 '    AR  DR  SR  RR  SL  TL  KS  ML  DT        main
  14. 130 DATA 31,  3,  4,  4,  4, 29,  1,  8,  0,  0
  15. 140 DATA 31,  5,  2,  4,  4, 31,  1,  2,  0,  0
  16. 150 DATA 31,  4,  3,  4,  4, 30,  1,  1,  0,  0
  17. 160 DATA 31,  2,  2,  7,  4, 10,  0,  2,  0,  0
  18. 170 GOSUB *VOICE_SET:VOICE 1,V,0
  19. 180 '----
  20. 190 GOSUB *READ_DATA
  21. 200 '    AF                     PAN PMS AMS
  22. 210 DATA 56,  0,  0,  0,  0,  0,  3,  0,  0,  0
  23. 220 '    AR  DR  SR  RR  SL  TL  KS  ML  DT        chord
  24. 230 DATA 31,  0,  1,  5,  1, 31,  1,  2,  0,  0
  25. 240 DATA 31,  1,  1,  4,  0, 37,  1,  1,  0,  0
  26. 250 DATA 31,  1,  0,  7,  1, 36,  1,  1,  0,  0
  27. 260 DATA 31,  1,  2,  9,  1,  8,  1,  2,  3,  0
  28. 270 GOSUB *VOICE_SET:VOICE 2,V,0
  29. 280 '----
  30. 290 GOSUB *READ_DATA
  31. 300 '    AF                     PAN PMS AMS
  32. 310 DATA 56,  0,  0,  0,  0,  0,  3,  0,  0,  0
  33. 320 '    AR  DR  SR  RR  SL  TL  KS  ML  DT        syn.2
  34. 330 DATA 31,  0,  0,  9,  0, 31,  1,  2,  7,  0
  35. 340 DATA 31,  0,  0,  9,  0, 25,  1,  2,  7,  0
  36. 350 DATA 31,  0,  0,  9,  0, 32,  1,  2,  7,  0
  37. 360 DATA 31,  0,  0,  9,  0,  7,  1,  2,  7,  0
  38. 370 GOSUB *VOICE_SET:VOICE 3,V,0
  39. 380 '----
  40. 390 GOSUB *READ_DATA
  41. 400 '    AF                     PAN PMS AMS
  42. 410 DATA 27,  0,  0,  0,  0,  0,  3,  0,  0,  0
  43. 420 '    AR  DR  SR  RR  SL  TL  KS  ML  DT        e.bass
  44. 430 DATA 31, 15, 14,  9,  6, 38,  1,  4,  0,  0
  45. 440 DATA 31, 11, 12,  5,  5, 33,  1,  0,  0,  0
  46. 450 DATA 31,  8,  7,  5,  3, 33,  1,  1,  3,  0
  47. 460 DATA 31,  6,  5,  7,  3,  1,  1,  1,  3,  0
  48. 470 GOSUB *VOICE_SET:VOICE 4,V,0
  49. 480 '----
  50. 490 GOTO 680
  51. 500 *VOICE_SET
  52. 510 D%(32)=T%(0,0)
  53. 520 FOR I%=0 TO 3:J%=I%+1
  54. 530 D%( 8+I%)=(T%(J%,8) AND 7)*16+(T%(J%,7) AND 15)
  55. 540 D%(12+I%)=(T%(J%,5) AND 127)
  56. 550 D%(16+I%)=(T%(J%,6) AND 3)*64+(T%(J%,0) AND 31)
  57. 560 D%(20+I%)=T%(J%,1) AND 31
  58. 570 D%(24+I%)=T%(J%,2) AND 31
  59. 580 D%(28+I%)=(T%(J%,4) AND 15)*16+(T%(J%,3) AND 15)
  60. 590 NEXT
  61. 600 D%(33)=((T%(0,6) AND 3)*64)+((T%(0,7) AND 3)*16)+((T%(0,8) AND 7)):'D%(34)=0
  62. 610 FOR I%=0 TO 47 STEP 2:L&=D%(I%+1)*256+D%(I%)
  63. 620 IF L&<&H8000 THEN V%(I%\2)=CINT(L&) ELSE V%(I%\2)=CINT(L&-&H10000)
  64. 630 NEXT:RETURN
  65. 640 '----
  66. 650 *READ_DATA
  67. 660 FOR X=0 TO 4:FOR Y=0 TO 9:READ T%(X,Y):NEXT Y:NEXT X
  68. 670 RETURN
  69. 680 GOSUB 1240
  70. 690 T$="T144%CU0Q8"
  71. 700 PLAY T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$
  72. 710 A0$="V12L8O4F4.CF.G+.>C <B-16G+16GGG+B-2"
  73. 720 C0$="L8O4F16&F4.CF.G+.>C <B-16G+16GGG+B-4.&B-16"
  74. 730 D0$="@2V12L1O3G+ G"
  75. 740 E0$="@2V12L1O4C <B-"
  76. 750 F0$="@4V11L16O2(F8>FF<)4 (E-8>E-E-<)4"
  77. 760 G0$="@1V15L4O1ARAR ARAR"
  78. 770 H0$="@1V15L4O2RERE RERE"
  79. 780 I0$="@1V15L16O6((A8AA)4)2"
  80. 790 'I0$="@1V15L16O6((AAAA)4)2"
  81. 800 A1$="O4E-4.<B->E-.G.B- G+G16F16&F4C+4E-4"
  82. 810 C1$="O4E-16&E-4.<B->E-.G.B- G+G16F16&F4C+4E-8."
  83. 820 D1$="O3G G+2F4G4"
  84. 830 E1$="O3B- >C2<G+4B-4"
  85. 840 F1$="O2(E-8>E-E-<)4 (C+8>C+C+<)3E-8>E-E-"
  86. 850 G1$="O1ARAR ARAR"
  87. 860 H1$="O2RERE RERL16EEEE"
  88. 870 A2$="O4F4.CF.G+.>C <B-16G+16GGB->E-2"
  89. 880 C2$="O4F16&F4.CF.G+.>C <B-16G+16GGB->E-4.&E-16"
  90. 890 A3$="O4E-8<B-8L16B-B->G+G+L8G+GGG+ G.F16F4F4E-4"
  91. 900 C3$="O4E-16&E-8<B-8L16B-B->G+G+L8G+GGG+ G.F16F4F4E-8."
  92. 910 D3$="O3G E-8.D-2&D-16"
  93. 920 E3$="O3B- G8.F2.&F16"
  94. 930 F3$="O2(E-8>E-E-<)4 (C+8>C+C+<)4"
  95. 940 G3$="O1ARAR ARAR"
  96. 950 H3$="O2RERE RER8L16EEEEEE"
  97. 960 A4$="O4L8D-4.D-16E-16F.E-.D- G.F.E-G+.G.F"
  98. 970 C4$="U120@3V12O4L8D-4.D-16E-16F.E-.D- G.F.E-G+.G.F"
  99. 980 D4$="O3F G2F2"
  100. 990 E4$="O3G+ B-2G+2"
  101. 1000 F4$="O2((D-8>D-D-<)4)2"
  102. 1010 A5$="O4G.G+.G&G2 >G.G+.G&G2"
  103. 1020 C5$="O4G.G+.G&G2 U0L16CDEF DEFG EFGG+ FGG+B-U80"
  104. 1030 D5$="O3E E"
  105. 1040 E5$="O3G G"
  106. 1050 F5$="O2((C8>CC<)4)2"
  107. 1060 A6$="O4L8D-4.D-16E-16F.E-.D- G.F.E-B-.G+.G16F16"
  108. 1070 C6$="U120O4L8D-4.D-16E-16F.E-.D- G.F.E-B-.G+.G16F16"
  109. 1080 A7$="O4G1 G+2G2"
  110. 1090 C7$="O4G1 G+2G2"
  111. 1100 D7$="O3E F2E2"
  112. 1110 E7$="O3G G+2G2"
  113. 1120 F7$="O2(G8>GG<)4G8>GG<G+8>G+G+<A8>AA<B-8>B-B-"
  114. 1130 G7$="O1ARAR ARAR"
  115. 1140 H7$="O2RER8E8L16EEEE L4REL16EEEEEEEE"
  116. 1150 PLAY "@1%R"+A0$,"@1%LU40"+A0$,"@1V8U80"+C0$,D0$,E0$,F0$,G0$,H0$,I0$
  117. 1160 PLAY A1$,A1$,C1$,D1$,E1$,F1$,G1$,H1$,I0$
  118. 1170 PLAY A2$,A2$,C2$,D0$,E0$,F0$,G0$,H0$,I0$
  119. 1180 PLAY A3$,A3$,C3$,D3$,E3$,F3$,G3$,H3$,I0$
  120. 1190 PLAY A4$,A4$,C4$,D4$,E4$,F4$,G0$,H0$,I0$
  121. 1200 PLAY A5$,A5$,C5$,D5$,E5$,F5$,G1$,H1$,I0$
  122. 1210 PLAY A6$,A6$,C6$,D4$,E4$,F4$,G0$,H0$,I0$
  123. 1220 PLAY A7$,A7$,C7$,D7$,E7$,F7$,G7$,H7$,I0$
  124. 1230 GOTO 1150
  125. 1240 GOSUB *SCREEN
  126. 1350 I$=INKEY$
  127. 1360 IF I$="" THEN 1350
  128. 1370 GOSUB *F_OUT:SCREEN@ 1:CLS
  129. 1380 PASTEL 128
  130. 1390 FOR I=168 TO 0 STEP -1
  131. 1400 LINE(0,I)-(319,I-98),PSET,[0,0,255-I]
  132. 1410 LINE(0,169*2-I)-(319,169*2-I-98),PSET,[0,0,255-I]
  133. 1420 NEXT
  134. 1430 CIRCLE(120,188),4,0,2,,,F,PASTEL
  135. 1440 CIRCLE(110,160),4,7,,,,F
  136. 1450 CIRCLE(113,168),5,7,,,,F
  137. 1460 CIRCLE(116,174),3,7,,,,F
  138. 1470 CIRCLE(117,177),3,7,,,,F
  139. 1480 CIRCLE(118,180),3,7,,,,F
  140. 1490 LINE(119,168)-(119,154),PSET,7
  141. 1500 PASTEL 64
  142. 1510 CIRCLE(113,168),80,[255,128,255],,,,F,PASTEL
  143. 1520 SYMBOL(212,232),"THE LIGHT SOLDIER",.7!,.5!,7
  144. 1530 RETURN
  145. 17000 *SCREEN
  146. 17010 SCREEN@ 0 : PALETTE@
  147. 17020 FOR I=0 TO 15 : PALETTE I,[0,0,0] : NEXT
  148. 17030 COLOR ,%5 : CLS
  149. 17040 X=630 : Y=30 : MX=2 : MY=3: R=3 : C1=1 : C2=5 : C3=15 : F=16
  150. 17050 ST$="PICK UP TOWNS" : GOSUB *STR_PUT
  151. 17060 X=575 : Y=30 : MX=2 : MY=3 : R=3 : C1=1 : C2=5 : C3=15 : F=16
  152. 17070 ST$="MUSIC PROGRAM" : GOSUB *STR_PUT
  153. 17080 GOSUB *F_IN : FOR I=0 TO 2000 : NEXT
  154. 17090 X1=10 : X2=510 : Y1=10 : Y2=460 : C1=1 : C2=6 : C3=15
  155. 17100 GOSUB *WAKU
  156. 17110 X1=20 : X2=500 : Y1=20 : Y2=90 : C1=15 : C2=7 : C3=5
  157. 17120 GOSUB *WAKU
  158. 17130 X1=20 : X2=500 : Y1=420 : Y2=450 : C1=15 : C2=7 : C3=5
  159. 17140 GOSUB *WAKU
  160. 17150 X1=20 : X2=500 : Y1=100 : Y2=410 : C1=15 : C2=7 : C3=5
  161. 17160 GOSUB *WAKU
  162. 17170 SYMBOL (30,430),"PF1キーを押すと、演奏を中断して音楽MENUに戻ります。",1,1,0,,,1
  163. 17180 SYMBOL (30,30)," TITLE ",1,1,0,0,PSET,17
  164. 17190 SYMBOL (80,53),"THE LIGHT SOLDIER",1,2,0,0,PSET,1
  165. 17200 SYMBOL (30,110)," DATA ",1,1,0,0,PSET,17
  166. 17210 SYMBOL (80,140),"Programed by ",1,1,0,0,PSET,1,1
  167. 17220 SYMBOL (80,160)," Composed by ",1,1,0,0,PSET,1,1
  168. 17230 SYMBOL (30,200)," MESSAGE ",1,1,0,0,PSET,17
  169. 17240 'ST$()="・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
  170. 17250 ST$(0)=" とってもとっても短い曲です、この曲は。何故かというと、"
  171. 17260 ST$(1)="思いつかなかったのです。これ以上。でも、僕の一番のお気"
  172. 17270 ST$(2)="に入り。(自分で言うな!)"
  173. 17280 ST$(3)=" 昔々に作ったので、未熟な曲ですが、目をつぶってやって"
  174. 17290 ST$(4)="ください。(今でも未熟だ!)"
  175. 17300 ST$(5)=""
  176. 17310 ST$(6)="リターンキー、または実行キーを押すと演奏が始まります。"
  177. 17320 ST$(7)=""
  178. 17330 GOSUB *MESSAGE
  179. 17340 RETURN
  180. 17350 *STR_PUT
  181. 17360 SYMBOL (X,Y),ST$,MX,MY,%C1,R,PSET,F
  182. 17370 SYMBOL (X+1,Y),ST$,MX,MY,%C1,R,PSET,F
  183. 17380 SYMBOL (X+2,Y),ST$,MX,MY,%C1,R,PSET,F
  184. 17390 SYMBOL (X+2,Y-1),ST$,MX,MY,%C1,R,PSET,F
  185. 17400 SYMBOL (X+2,Y-2),ST$,MX,MY,%C1,R,PSET,F
  186. 17410 SYMBOL (X,Y-2),ST$,MX,MY,%C3,R,PSET,F
  187. 17420 SYMBOL (X+1,Y-2),ST$,MX,MY,%C3,R,PSET,F
  188. 17430 SYMBOL (X,Y-1),ST$,MX,MY,%C3,R,PSET,F
  189. 17440 SYMBOL (X+1,Y-1),ST$,MX,MY,%C2,R,PSET,F
  190. 17450 RETURN
  191. 17460 *WAKU
  192. 17470 LINE (X1+2,Y1+2)-(X2-2,Y2-2),PSET,%C2,BF
  193. 17480 CONNECT (X1,Y2)-(X1,Y1)-(X2,Y1),%C3
  194. 17490 CONNECT (X1+1,Y2-1)-(X1+1,Y1+1)-(X2-1,Y1+1),%C3
  195. 17500 CONNECT (X1+1,Y2)-(X2,Y2)-(X2,Y1+1),%C1
  196. 17510 CONNECT (X1+2,Y2-1)-(X2-1,Y2-1)-(X2-1,Y1+2),%C1
  197. 17520 RETURN
  198. 17530 *MESSAGE
  199. 17540 FOR I=0 TO 7
  200. 17550   SYMBOL (50,230+20*I),ST$(I),1,1,0,0,PSET,1
  201. 17560 NEXT I
  202. 17570 RETURN
  203. 17580 *F_OUT
  204. 17590 FOR I=16 TO 1 STEP -1 : GOSUB *PALETTE : NEXT I :COLOR ,%0: CLS: RETURN
  205. 17600 *F_IN
  206. 17610 FOR I=1 TO 16 : GOSUB *PALETTE : NEXT I : RETURN
  207. 17620 *PALETTE
  208. 17630 PALETTE 1,[0*I,0*I,1*I]
  209. 17640 PALETTE 2,[1*I,0*I,2*I]
  210. 17650 PALETTE 3,[2*I,1*I,3*I]
  211. 17660 PALETTE 4,[4*I,2*I,6*I]
  212. 17670 PALETTE 5,[8*I,6*I,9*I]
  213. 17680 PALETTE 6,[12*I,10*I,13*I]
  214. 17690 PALETTE 7,[14*I,13*I,15*I]
  215. 17700 PALETTE 15,[15*I,15*I,15*I]
  216. 17710 RETURN
  217. 65000 BGM 0:PLAY "R64":BGM 1
  218. 65010 KEY (1) OFF:PLAY OFF:FOR I=0 TO 13:PART I,I:NEXT:RUN"MENU.BAS"
  219.